package com.sskj.one.util;

import android.media.AudioManager;
import android.media.MediaPlayer;

import com.hjq.toast.ToastUtils;

import java.io.File;

public class MusicControl {

    public static void play(MediaPlayer mediaPlayer, String path) {
        File file = new File(path);
        if (file.exists() && file.length() > 0) {
            try {
                // 设置指定的流媒体地址
                mediaPlayer.setDataSource(file.getPath());
                // 设置音频流的类型
                mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);

                // 通过异步的方式装载媒体资源
                mediaPlayer.prepareAsync();
                mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
                    @Override
                    public void onPrepared(MediaPlayer mp) {
                        // 装载完毕 开始播放流媒体
                        mediaPlayer.start();
                    }
                });
                // 设置循环播放
                mediaPlayer.setLooping(true);

                mediaPlayer.setOnErrorListener(new MediaPlayer.OnErrorListener() {

                    @Override
                    public boolean onError(MediaPlayer mp, int what, int extra) {
                        // 如果发生错误，重新播放
                        replay(mediaPlayer, path);
                        return false;
                    }
                });
            } catch (Exception e) {
                e.printStackTrace();
                ToastUtils.show("播放失败");
            }
        } else {
            ToastUtils.show("文件不存在");
        }
    }

//
//    /**
//     * 暂停
//     */
//    protected void pause() {
//        if (btn_pause.getText().toString().trim().equals("继续")) {
//            btn_pause.setText("暂停");
//            mediaPlayer.start();
//            Toast.makeText(this, "继续播放", 0).show();
//            return;
//        }
//        if (mediaPlayer != null && mediaPlayer.isPlaying()) {
//            mediaPlayer.pause();
//            btn_pause.setText("继续");
//            Toast.makeText(this, "暂停播放", 0).show();
//        }
//    }

    /**
     * 重新播放
     */
    public static void replay(MediaPlayer mediaPlayer, String path) {
        if (mediaPlayer != null && mediaPlayer.isPlaying()) {
            mediaPlayer.seekTo(0);
            ToastUtils.show("重新播放");
            return;
        }
        play(mediaPlayer, path);
    }


    /**
     * 停止播放
     */
    public static void stop(MediaPlayer mediaPlayer) {
        if (mediaPlayer != null && mediaPlayer.isPlaying()) {
            mediaPlayer.stop();
//            mediaPlayer.release();
            ToastUtils.show("停止播放");
        }

    }


}
